eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
↳ QTRS
↳ DependencyPairsProof
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
PURGE1(add2(N, X)) -> RM2(N, X)
PURGE1(add2(N, X)) -> PURGE1(rm2(N, X))
EQ2(s1(X), s1(Y)) -> EQ2(X, Y)
IFRM3(true, N, add2(M, X)) -> RM2(N, X)
IFRM3(false, N, add2(M, X)) -> RM2(N, X)
RM2(N, add2(M, X)) -> EQ2(N, M)
RM2(N, add2(M, X)) -> IFRM3(eq2(N, M), N, add2(M, X))
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
PURGE1(add2(N, X)) -> RM2(N, X)
PURGE1(add2(N, X)) -> PURGE1(rm2(N, X))
EQ2(s1(X), s1(Y)) -> EQ2(X, Y)
IFRM3(true, N, add2(M, X)) -> RM2(N, X)
IFRM3(false, N, add2(M, X)) -> RM2(N, X)
RM2(N, add2(M, X)) -> EQ2(N, M)
RM2(N, add2(M, X)) -> IFRM3(eq2(N, M), N, add2(M, X))
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
EQ2(s1(X), s1(Y)) -> EQ2(X, Y)
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
EQ2(s1(X), s1(Y)) -> EQ2(X, Y)
POL(EQ2(x1, x2)) = 3·x1 + 3·x1·x2 + 3·x2
POL(s1(x1)) = 2 + 2·x1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
IFRM3(true, N, add2(M, X)) -> RM2(N, X)
IFRM3(false, N, add2(M, X)) -> RM2(N, X)
RM2(N, add2(M, X)) -> IFRM3(eq2(N, M), N, add2(M, X))
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
IFRM3(true, N, add2(M, X)) -> RM2(N, X)
IFRM3(false, N, add2(M, X)) -> RM2(N, X)
Used ordering: Polynomial interpretation [21]:
RM2(N, add2(M, X)) -> IFRM3(eq2(N, M), N, add2(M, X))
POL(0) = 3
POL(IFRM3(x1, x2, x3)) = 2·x1 + 3·x1·x2 + x2·x3 + 2·x3
POL(RM2(x1, x2)) = 2 + 2·x1 + 3·x1·x2 + 3·x2
POL(add2(x1, x2)) = 2 + 3·x1 + 2·x1·x2 + 3·x2
POL(eq2(x1, x2)) = 2 + x2
POL(false) = 2
POL(s1(x1)) = 3 + 2·x1
POL(true) = 2
eq2(0, 0) -> true
eq2(s1(X), s1(Y)) -> eq2(X, Y)
eq2(s1(X), 0) -> false
eq2(0, s1(X)) -> false
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
RM2(N, add2(M, X)) -> IFRM3(eq2(N, M), N, add2(M, X))
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
PURGE1(add2(N, X)) -> PURGE1(rm2(N, X))
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PURGE1(add2(N, X)) -> PURGE1(rm2(N, X))
POL(0) = 0
POL(PURGE1(x1)) = 2·x1
POL(add2(x1, x2)) = 1 + 3·x1 + 3·x2
POL(eq2(x1, x2)) = 0
POL(false) = 0
POL(ifrm3(x1, x2, x3)) = 3·x3
POL(nil) = 0
POL(rm2(x1, x2)) = 3·x2
POL(s1(x1)) = 0
POL(true) = 0
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
rm2(N, nil) -> nil
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))